#202252320421
#罗坤帅

# 导入必要的库和模块
import pickle
import gradio as gr
from PIL import Image
import numpy as np

# 加载保存的KNN模型
with open('best_knn_model.pkl', 'rb') as f:
    knn_model = pickle.load(f)

# 定义预测函数
def predict_digit(image):
    # 在这里进行图像预处理
    import numpy as np
    from PIL import Image
    
    # 将图像转换为 28x28 大小
    if image is not None:
        image = image.resize((28, 28))
        image = np.array(image).reshape(28, 28)
    
    # 这里是预测逻辑
    # 返回预测结果
    return "42"  # 示例返回值

# 创建Gradio接口
interface = gr.Interface(
    fn=predict_digit,  # 预测函数
    inputs=gr.Image(type='pil', image_mode='L'),  # 输入为灰度图像
    outputs=gr.Label(),  # 输出为预测的标签
    title="手写数字识别",  # 界面标题
    description="上传手写数字图像，模型将预测该数字。"  # 界面描述
)

# 启动界面
interface.launch()